1. Field
One or more aspects of embodiments according to the present invention relate to synchronization of classical distributed computing systems, and more particularly to a quantum system for synchronization of classical distributed computing systems.
2. Description of Related Art
In a real-time distributed computing environment, multiple nodes coordinate their activity to achieve a set of specific results. As processors have increased in speed and diminished in size, adding more processors has become routine and a viable solution for many computationally challenging efforts. The challenge has now shifted to the coordination of all nodes. Each node may have multiple processors and each processor has its own clock. The clocks vary in precision based on the particular oscillation mechanism and the amount of heat absorbed by the oscillator. This variance cause clocks to skew at differing rates. The clock skew is closely monitored such that all nodes meet a time window. Synchronization messages are sent between nodes to try to determine an approximate clock standard. Furthermore, as the nodes are separated in space one has to regard the message's “time of flight” from node to node. Since the time of flight is based on a clock, the greater the clock precision and synchronization, the more accurate the data.
In current systems, real-time and quasi real-time systems depend on the success of meeting their service requirements depending upon the accuracy, timeliness of their responses and their resilience to faults regardless of their design or target applications. A real-time system must have a good notion of time. A time base can be absolute, corresponding to a physical or relative clock based on specific events. Typically a synchronization primitive is implemented to establish and maintain a common time base among distributed functional nodes and between computational tasks. The task then is to ensure an acceptable level of synchrony.
The problem of synchronization depends on coordinating the control flow among tasks and processors. If a system has a single program module then it is referred as a uni-processor system. One straightforward solution for a uni-processor system is to use a common time base derived from the processor's clock. In a distributed system with multiple processing nodes ascertaining the common clock is difficult. Although it is just one facet of synchronicity, it is an important one. The object is to establish and maintain consistency system wide amongst the various subsystems distributed in the real-time environment. A system can be synchronized by both processes or tasks and nodes or clocks.
As regards temporal synchrony (nodes or clocks), each node in a distributed system possesses a local clock mechanism and the nodes communicate via messages. The system architecture assumes that message passing occurs with a bounded propagation delay. Usually physical time refers to absolute time in the physical world while logical time is time produced by the clock on the node. In order to make the system useful one can map the physical time (t) the logical time (T) as T=C(t) where C(T) is an event.
The rate of time change for a logical clock when it exactly matches the physical clock is then
            ⅆ              D        ⁡                  (          t          )                            ⅆ              (        t        )              =  1.A typical crystal oscillator drifts by about 10−5 seconds per second. That is about 0.86 seconds in a 24 hour period. Two clocks could be separated by as much as 1.72 seconds in a 24 hour period. One can define the synchronization envelope as p and the drift of a clock is bounded by|((C(t2)−C(t1))−(t2−t1)|≦p|t2−t1|
Similarly one can define the proximity of two events whereby the events are separated in space by some distance. As described, the logic of synchronization across both space and time can become quite convoluted. It engenders additional processing and increases overall entropy in the system.